int cmp(const void* pa, const void* pb){
    return (*(int*)pa - *(int*)pb);
}
int deleteGreatestValue(int** grid, int gridSize, int* gridColSize) {
    for(int i = 0; i < gridSize; i++){
        qsort(grid[i], *gridColSize, sizeof(int), cmp);
    }
    int res = 0;
    
    for(int j = 0; j < *gridColSize; j++){
        int tmp = 0;
        for(int i = 0; i < gridSize; i++){
            if(grid[i][j] > tmp){
                tmp = grid[i][j];
            }
        }
        res += tmp;
    }
    return res;
}

//*gridColSize -> 列数, gridize -> 行数

/*给你一个 m x n 大小的矩阵 grid ，由若干正整数组成。执行下述操作，直到 grid 变为空矩阵：

从每一行删除值最大的元素。如果存在多个这样的值，删除其中任何一个。将删除元素中的最大值与答案相加。

注意每执行一次操作，矩阵中列的数据就会减 1 。返回执行上述操作后的答案。*/